本期故事主角:Funda Wang,龙蜥社区贡献者,在社区进行 RPM 打包工作,帮助 Anolis OS 23 成为真正意义上的自包含原生社区发行版。
和大多数开发者一样,我也是从大学的时候开始接触 Linux 及其他开源软件的。在我大四的时候,一边做着大量开源软件的翻译工作,一边搞着我的毕业课题“基于 Delphi 的 Gettext 实现”。不用搜索就知道这两个名词是什么意思的人,大多已经实现了财务自由,我最终只是选择了去一所与专业关系不大的学校工作。在学校的工作,又不具体参与教学,下班之后的自由度很高。做开源软件翻译的时间长了,就会和软件开发者的交流频繁起来。那个时候我才真正体会到,软件开发者大多数时候并不直接接触用户,中间有很多人来帮助软件从代码交付到客户。而将源代码编译打包成为二进制包,这个工作在开源软件界已经细分成为了一个专门的工种。自此之后,我的工作兴趣和重心逐渐转移到了二进制包的打包,并先后在两个 Linux 发行版持续进行了五六年的打包工作。RPM 软件打包,主要内容是编写一个 SPEC 文件,将软件的源代码编译成二进制文件,然后交付给软件仓库。这个过程说起来简单,其实涉及的内容很多很杂。绝大多数时候,我们对于软件内部一无所知,这和技术 SIG(Special Interest Group)还是有区别的。我经手的软件包,少说也有二三百个,构建系统也是多种多样,不可能全部都明白是怎么回事。对于打包工程师来说,我只要知道软件开发者的编译文档是怎么写的,然后根据我的理解,将其转化为正确的 SPEC 文件,编译安装成功就可以了。当然,在打包过程中,我也发现开发者在构建系统方面的理解和使用水平参差不齐,和他们反复沟通就成为了不可避免的事情,毕竟我们需要共同努力协作才能给社区交付高质量的软件包。2022 年,随着国内 Linux 社区的再次兴起,我沉寂已久的心又激动起来。龙蜥社区背靠多家国内外主流的操作系统厂商、芯片厂商、云计算公司,有望成为 Linux 社区的标杆。在参与过程中,我凭借多年的打包经验,迅速加入到 Anolis OS 23 的构建工作中来。社区里现有的小伙伴,可能年纪很轻,尤其对打包缺乏经验,那么我们大家就互相帮助,解决问题。2023 年寒假期间,我按学校要求减少外出,在家有很多时间更新软件包,龙蜥社区的全职工程师利用春节休假也和我一起频繁审核仓库的合入请求,我们经常工作到深夜。前几天,我们几个核心打包骨干,在 OpenSSL、OpenSSH 等发行版核心加密组件的打包管理上,进行了多次富有成效的讨论,促使打包工作更加有序的进行下去。规划中的 Anolis OS 23 是完全自包含的原生 Linux 发行版,所以在打包工作上需要大量的人力和精力投入。